package com.entor.hqj.util;

import android.app.Activity;
import android.text.TextUtils;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;

import com.entor.hqj.login.R;

/**
 * 创建顶部栏的工具
 * Created by hqj on 2018/1/27 0027.
 */

public class TitleBuilder {

    /**
     * title栏的根布局
     */
    private View titleView;
    private TextView l_tv;//左侧文本
    private ImageView l_iv;//左侧图片
    private TextView m_tv;//中间文本
    private TextView r_lv;//右侧文本
    private ImageView r_iv;//右侧图片

    /**
     * 第一种 标题栏初始化方法
     * 直接引用进文件的初始化方式
     * @param context
     */
    public TitleBuilder(Activity context){
        titleView = context.findViewById(R.id.title_bar);

        l_tv = (TextView)titleView.findViewById(R.id.title_left_textview);
        l_iv = (ImageView)titleView.findViewById(R.id.title_left_imageview);

        m_tv = (TextView)titleView.findViewById(R.id.title_middle_textview);

        r_lv = (TextView)titleView.findViewById(R.id.title_right_textview);
        r_iv = (ImageView)titleView.findViewById(R.id.title_right_imageview);
    }

    /**
     * 第二种初始化方式
     * 这里是比如你用代码创建布局的时候使用
     * @param context
     */
    public TitleBuilder(View context){

        titleView = context.findViewById(R.id.title_bar);

        l_tv = (TextView)titleView.findViewById(R.id.title_left_textview);
        l_iv = (ImageView)titleView.findViewById(R.id.title_left_imageview);

        m_tv = (TextView)titleView.findViewById(R.id.title_middle_textview);

        r_lv = (TextView)titleView.findViewById(R.id.title_right_textview);
        r_iv = (ImageView)titleView.findViewById(R.id.title_right_imageview);
    }

    /**
     * title的背景颜色
     * @param resid
     * @return
     */
    public TitleBuilder setMidTitleBgRes(int resid){
        m_tv.setBackgroundResource(resid);
        return this;
    }

    /**
     * 设置title中间的文本
     * @param text
     * @return
     */
    public TitleBuilder setMidTitleText(String text){
        //三木运算符，判断是否显示文本，如果为空不显示，否则显示
        m_tv.setVisibility(TextUtils.isEmpty(text)?View.GONE:View.VISIBLE);
        //设置中间文本
        m_tv.setText(text);

        return this;

    }

    /**
     * 设置title左侧图片
     * @param resid
     * @return
     */
    public TitleBuilder setLeftImgRes(int resid){

        l_iv.setVisibility(resid > 0 ? View.VISIBLE : View.GONE );
        l_iv.setImageResource(resid);
        return  this;
    }

    /**
     * 设置title左侧文本
     * @param text
     * @return
     */
    public TitleBuilder setLeftText(String text){

        l_tv.setVisibility(TextUtils.isEmpty(text) ? View.GONE : View.VISIBLE);
        l_tv.setText(text);
        return this;
    }

    /**
     * 设置左侧图片或者文本的监听事件
     * @param listener
     * @return
     */
    public TitleBuilder setLeftImgOrTextListener(View.OnClickListener listener){
        //判断左侧图片是否显示
        if(l_iv.getVisibility() == View.VISIBLE){//显示
            l_iv.setOnClickListener(listener);
        }else if(l_tv.getVisibility() == View.VISIBLE){
            l_tv.setOnClickListener(listener);
        }

        return this;
    }

    /**
     * 右边图片按钮
     * @param resid
     * @return
     */
    public TitleBuilder setRightImageRes(int resid) {

        r_iv.setVisibility(resid > 0 ? View.VISIBLE : View.GONE);
        r_iv.setImageResource(resid);
        return this;
    }

    /**
     * 右边文字按钮
     *
     * @param text
     * @return
     */
    public TitleBuilder setRightText(String text) {

        r_lv.setVisibility(TextUtils.isEmpty(text) ? View.GONE:View.VISIBLE);
        r_lv.setText(text);
        return this;
    }

    /**
     * 设置右边的事件
     */
    public TitleBuilder setRightImgOrTextListener(View.OnClickListener listener) {

        if (r_iv.getVisibility() == View.VISIBLE) {
            r_iv.setOnClickListener(listener);
        } else if (r_lv.getVisibility() == View.VISIBLE) {
            r_lv.setOnClickListener(listener);
        }
        return this;
    }

    public View build(){
        return  titleView;
    }

}
